package io.gitee.yanbinchen;

/**
 * @author: alex
 * @since : 2025-03-03 20:03
 */
public class StrUtils {
    /**
     * 判断对象是否为空
     * @param obj 待检查的对象
     * @return 如果对象为空，则返回true，否则返回false
     */
    public static boolean isNotEmpty(Object obj) {
        if (obj == null) {
            return false;
        }

        // 如果是字符串，判断是否为空字符串或者只有空白字符
        if (obj instanceof String) {
            return !((String) obj).trim().isEmpty();
        }

        // 如果是集合，数组，判断是否为空
        if (obj instanceof CharSequence) {
            return !((CharSequence) obj).toString().trim().isEmpty();
        }

        if (obj instanceof java.util.Collection) {
            return !((java.util.Collection<?>) obj).isEmpty();
        }

        if (obj instanceof java.util.Map) {
            return !((java.util.Map<?, ?>) obj).isEmpty();
        }

        if (obj.getClass().isArray()) {
            return java.lang.reflect.Array.getLength(obj) > 0;
        }
        // 对于其他对象，默认非空
        return true;
    }

    /**
     * 判断字符串是否为空或空字符串
     * @param str 待检查的字符串
     * @return 如果字符串为空，则返回true，否则返回false
     */
    public static boolean isNotEmpty(String str) {
        return str != null && !str.trim().isEmpty();
    }
}
